﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Diagnostics;
using System.IO;
using MikeSoft.Tool.Common;
using System.Reflection;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            #region MD5加密算法
            //    Console.WriteLine("请输入要加密的密码:");

            //    string hash = GetMD5Hash(Console.ReadLine());
            //    Console.WriteLine("MD5后为:{0}", hash);
            //    Console.WriteLine("开始穷举破解用户密码");
            //    string key = string.Empty;
            //    Stopwatch sw = new Stopwatch();
            //    sw.Start();
            //    for (int i = 0; i < 9999999; i++)
            //    {
            //        if (VerifyMD5Hash(i.ToString(), hash))
            //        {
            //            key = i.ToString();
            //            break;

            //        }
            //    }
            //    sw.Stop();
            //    Console.WriteLine("密码为:{0},耗时{1}", key, sw.ElapsedMilliseconds);

            //    //string s = "luminji's key";
            //    //
            //    //Console.WriteLine(hash);
            //    Console.ReadLine();
            //}
            //static bool VerifyMD5Hash(string i, string h)
            //{
            //    string hashofInput = GetMD5Hash(i);
            //    StringComparer sc = StringComparer.OrdinalIgnoreCase;
            //    return sc.Compare(hashofInput, h) == 0 ? true : false;
            //}
            //static string GetMD5Hash(string s)
            //{
            //    using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
            //    {
            //        return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(s))).Replace("-", "");
            //    }
            //}
            #endregion

            #region 对称加密算法
            //SymmetricAlgorithmCrypto.EncryptFile(@"D:\1.txt", @"D:\2.txt");
            //Console.WriteLine("加密成功");
            //SymmetricAlgorithmCrypto.DecryptFile(@"D:\2.txt", @"D:\3.txt");
            //Console.WriteLine("解密成功");
            //Console.ReadLine();
            #endregion
        }
    }
}

